package gov.pbc.nn.core.bdf;

import java.util.List;
import java.util.UUID;

import com.bstek.bdf2.core.model.Url;
import com.bstek.dorado.core.Configure;

/**
 * 生成系统菜单的抽象类。各个模块可以集成该类，并置于Spring容器中，将会随着服务器启动而初始化菜单，只会在数据库中没有任何菜单的时候初始化一次。<br/>
 * 
 * @author louis
 * 
 */
public abstract class AbstractMenuGenerator {

	/**
	 * 构造要初始化的菜单的URL对象列表。在该方法中，可以调用抽象父类中的createUrl方法生成Url对象。
	 * 
	 * @param rootId
	 *            根菜单ID
	 * @return
	 */
	public abstract List<Url> getUrls(String rootId);

	protected Url createUrl(String name, String icon, String parentId,
			int order, String targetUrl) {
		String companyId = Configure.getString("bdf2.fixedCompanyId");
		Url url = new Url();
		url.setId(UUID.randomUUID().toString());
		url.setName(name);
		url.setIcon(icon);
		url.setUrl(targetUrl);
		url.setParentId(parentId);
		url.setCompanyId(companyId);
		url.setForNavigation(true);
		url.setOrder(order);

		return url;
	}

}
